package com.zw.a.basic.a12.demo08_serializable;

import com.itheima.pojo.Student;

import java.io.*;

//案例: 演示对象的反序列化操作.
/*
    结论: 记忆:
        1. ObjectOutputStream叫序列化流, ObjectInputStream叫: 发序列化流.
        2. 如果某个类想实现序列化或者反序列化操作, 则该类必须实现Serializable接口.
        3. Serializable接口中没有任何的方法和变量, 它就是一个标记接口.
           类似于你去超市买猪肉, 猪肉身上的 质检戳

    反序列化解释:
        概述:
            反序列化指的是从文件中加载JavaBean对象.
        涉及到的流:
            ObjectInputStream      序列化流.
        涉及到的方法
            public ObjectInputStream(InputStream os);

            ObjectInputStream#readObject()             从文件中读取指定的JavaBean对象.
 */
public class Demo02 {
    public static void main(String[] args) throws Exception {
        //需求2: 反序列化操作.
        //1. 创建序列化流, 封装数据源文件.
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("day12/data/1.txt"));
        //2. 进行反序列化操作.
       Student s = (Student)(ois.readObject());
       //3. 打印对象.
        System.out.println(s);
        //4. 关流.
        ois.close();
    }
}
